import "@site/src/languages/highlight";

# Model

**描述：**

&emsp;&emsp;另一套实现`Playable`接口的动画模型系统。

**类对象：**[Model Class](/docs/api/Class%20Object/Model)。

**继承自：**[Playable](/docs/api/Class/Playable)。

## reversed

**类型：** 成员变量。

**描述：**

&emsp;&emsp;动画模型是否将倒着播放动画。

**签名：**
```tl
reversed: boolean
```

## duration

**类型：** 只读成员变量。

**描述：**

&emsp;&emsp;当前动画的持续时间模型。

**签名：**
```tl
const duration: number
```

## playing

**类型：** 只读成员变量。

**描述：**

&emsp;&emsp;动画模型当前是否正在播放。

**签名：**
```tl
const playing: boolean
```

## paused

**类型：** 只读成员变量。

**描述：**

&emsp;&emsp;动画模型当前是否处于暂停状态。

**签名：**
```tl
const paused: boolean
```

## hasAnimation

**类型：** 函数。

**描述：**

&emsp;&emsp;检查模型是否有指定的动画。

**签名：**
```tl
hasAnimation: function(self: Model, name: string): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| name | string | 要检查的动画的名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 动画是否存在于模型中。 |

## pause

**类型：** 函数。

**描述：**

&emsp;&emsp;暂停当前正在播放的动画。

**签名：**
```tl
pause: function(self: Model)
```

## resume

**类型：** 函数。

**描述：**

&emsp;&emsp;恢复当前暂停的动画，或者开始播放新的动画。

**签名：**
```tl
resume: function(
		self: Model,
		name?: string,
		loop?: boolean --[[false]]
	)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| name | string | [可选] 要播放的动画的名称。 |
| loop | boolean | [可选] 是否循环播放动画（默认为 false）。 |

## reset

**类型：** 函数。

**描述：**

&emsp;&emsp;将当前动画重置为初始状态。

**签名：**
```tl
reset: function(self: Model)
```

## updateTo

**类型：** 函数。

**描述：**

&emsp;&emsp;将动画更新到指定的时间，并可选择以反向播放的进度做更新。

**签名：**
```tl
updateTo: function(
		self: Model,
		elapsed: number,
		reversed?: boolean --[[false]]
	)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| elapsed | number | 要更新到的时间。 |
| reversed | boolean | [可选] 是否反向播放动画（默认为 false）。 |

## getNodeByName

**类型：** 函数。

**描述：**

&emsp;&emsp;获取指定名称的节点。

**签名：**
```tl
getNodeByName: function(self: Model, name: string): Node
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| name | string | 要获取的节点的名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Node | 具有指定名称的节点。 |

## eachNode

**类型：** 函数。

**描述：**

&emsp;&emsp;对模型中的每个节点调用指定的函数，并在函数返回 false 时停止。

**签名：**
```tl
eachNode: function(self: Model, func: function(Node): boolean): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| func | function | 要为每个节点调用的函数。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 是否为所有节点调用了函数。 |